home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 16
/
Aminet 16 (1996)(GTI - Schatztruhe)[!][Dec 1996].iso
/
Aminet
/
misc
/
emu
/
QDOS1.lha
/
QLboot
/
DOCs
/
Amiga-QDOS.ver
< prev
next >
Wrap
Text File
|
1996-10-13
|
36KB
|
857 lines
____ _ _ _ ____ ____ ____ ____ ____ ____
/ __ \ / \/ \ | | / ___| / __ \ / __ \ | _ \ / __ \ / ___|
| |__| || || || | _ | |__| | __ | | | || | \ \| | | | \_ \
| __ || |\/| || || |__| || __ | |__| | |_/ \| |_/ /| |__| | __\ \
|_| |_||_| |_||_| \____/ |_| |_| \___/\/|____/ \____/ |____/
S O F T W A R E Q D O S E M U L A T O R F O R T H E A M I G A
--------------------------------------------------------------------------
1m4mVers. 3.23, revision 2 - AUG 960m
1mBUG FIXES:0m
Fixed bug in the BASIC BOOT program on the QLutils disk. The program
did not allocate enough RAM before loading the PDTK SuperBASIC toolkit.
The statement on line 1040: "RESPR(3008)" should have read
"RESPR(3148)". -MJS
Fixed error in SuperBASIC utility SYS_REF that 'introduced' a bug into
patched TURBO tasks. All SYS_REF'ed tasks should be run through the new
version of SYS_REF to replace the old patches with new. -MJS
1mADDITIONS/ALTERATIONS:0m
Repatched the tasks on the utilities disk with the newer version of
SYS_REF. -MJS
Earlier releases were as DMS disk archives. This allowed the emulator
to be distributed in a format free from the hassle of installation.
Since Aminet administrators frown upon the use of DMS, future releases
will be archived using LHA and will contain no Workbench related
material. -MJS
--------------------------------------------------------------------------
1m4mVers. 3.23 - OCT 950m
1mBUG FIXES:0m
Fixed bug in MOVE SR,<ea> emulation routine that prevented TURBO
compiler (and possibly others) from working on the A4000/A1200 -MJS
Fixed bug in JS ROM IO_QIN routine that assumed 24 bit addressing.
$383A BNE.S $385A becomes BLT.S $385A -MJS
Fixed bug in JS ROM RI_EXEC routine that assumed that the byte stored
at address $0 was $0. The long word stored at address $0 contains the
initial stack when re-booting QDOS. If QDOS is moved to a high address
(eg $7e00000-$8000000), then the byte at zero is non-zero. -MJS
Fixed bug(s) in keyboard routines that caused auto-repeat to sometimes
go into overdrive if interrupts were disabled for a long period
(i.e. during disk accesses). -MJS
Fixed L_QDOS to disable the MMU (on the '040+) before taking over the
amiga. -MJS
CTRL-ALT-SHIFT-TAB (hard reset) and CTRL-ALT-7 (soft reset) now wait
for blitter to finish before disabling anything (so no more rolling-
screen-garbage) and correctly set all variables for VDU routines
(so no more screen lock-ups) -MJS
Fixed bug in JS ROM ATAN routine at $4350 (ARITH_asm).
move.l #...,(a6,a1.w) becomes move.l #...,(a6,a1.l) -SNG
1mADDITIONS/ALTERATIONS:0m
Changed TAS emulation code from F-Line to A-Line. F-Line instructions
were taking too long on the A4000, possibly due to the hardware
searching for non-existent co-processors. Emulation now uses
instruction: %1010111XXXXXXXXX. Altered NO_TAS and RESTORE_TAS to suit.
-MJS
Added ICACHE_ON, ICACHE_OFF, DCACHE_ON and DCACHE_OFF. These keywords
allow the instruction and data caches to be turned on and off.
Intruction and data caches default to ON. -MJS
Added RESET_EXTENTS command to compliment RESET_TOP and RESET_SV.
RESET_EXTENTS allows the simultaneous setting of RAMTOP and the system
variable area. -MJS
Altered SYS_REF_task to make TURBO, TURBO compiled and some QLIB tasks
32-bit clean. -MJS
Added support for 'other' (i.e. not the default) screen and independent
screen redraw (switch modes without clearing screen) to BASICs MODE and
the m/c routine MT.DMODE. (now 100%+ minerva compatible?). Task/screen
switching supports differing screen modes (i.e. one screen can be mode
8 and the other mode 4). The unused bits in SV_MCSTAT are used to
indicate the state of the 'unseen' screen. Lots of changes in the ROM
to accomodate for the fact that the screen you are drawing/printing to,
may be other than or in a different mode to the one that is being
shown. -MJS
Added COPYBACK_ON and COPYBACK_OFF which allows copyback mode to be
turned on and off. -SNG
Added 'ACE' screen accelerator. This ROM takes over from the blitter
providing QL screen emulation via the processor. Both MODE 4 and MODE 8
are supported. On 68030 processors and above, screen emulation is both
smoother and faster. 'ACE' screen emulation can be turned on or off via
the commands ACE_ON and ACE_OFF. -SNG
Altered L_QDOS to 'auto-configure' allowing QDOS to be launched from a
single icon on ALL amigas. Custom icons are provided for those who wish
to force a particular configuration (i.e. running QDOS from CHIP RAM
only). -MJS
Added KEZUK keyword. Acts just like KEYUK, by re-enabling the UK
keymap. -MJS
Added MOVEP emulation for 68060 compatibility. MOVEP is not implemented
on the 68060! -MJS
On 68010+... exception vectors now copied into RAM, and VBR set to
point to vector copies. This allows all 256 exceptions to be catered
for. Vectors 48-255 are normally unusable (overwritten) in QDOS. -MJS
Vector 4 (illegal instruction) copied into vector 61. Allows 68060
MOVEP emulation to actually work. Bug fix suggested by Simon Goodwin.
-MJS
--------------------------------------------------------------------------
1m4mVers. 3.22beta - (beta only, never released)... 93-940m
1mBUG FIXES:0m
Re-wrote the exception handler to accomodate for 680X0 processors. -MJS
Fixed expansion RAM check routine - caused a bus error prior to F1/F2
screen on the A4000. -MJS
Fixed L_QDOS so that it enters supervisor mode in a legal manner. -MJS
Fixed a bug in RJOB/FRJOB routine (Trap#1 d0=4/5). The old JS routine
uses the upper bytes of addresses in the job table to "mark" jobs
awaiting deletion, while it traverses the job tree looking for related
jobs. It then assumes 24 bit addressing in hardware, and uses the
address without consideration as to the validity of the upper byte.
This caused a bus error on the A4000 whenever a job was removed. The
new routine uses a new status word (-3) that is stored in JB_STAT of
the job header and performs the same function in a 32-bit clean way.
-MJS
A change in KBD_cde allows up to 8 characters to be typed while
interrupts are switched off (i.e. long disk accesses) before characters
are lost. The keyboard processor can store up to 20 key-strokes
(key-down / key-up = 2 key-strokes) in its' internal buffer before
losing characters. If the buffer is not empty the keyboard processor
causes an interrupt by setting a bit in INTREQ. During disk access
interrupts are disabled, but when interrupts are switched on again if
there are any characters in the buffer a CIAA interrupt should occur
immediately - allowing one to read the stored key-strokes. A logic
error in KBD_cde meant that if keystroke interrupts were 'stacked-up'
only the last one was serviced correctly. -MJS
Added 'history' facility to KBD_cde. The last typed line can be
recovered by typing <ALT><ENTER> -MJS
CTRL-TAB no-longer leaves a TAB character in the input stream, and
CTRL-I no-longer acts like a CTRL-TAB. -MJS
Altered VDU code to clear BEAMCON0, BPLCON3 & FMODE for AGA downward
compatibility. -MJS
Altered CLK code to update value for date every hour. This fixes a bug
whereby the date would wrap every 3.88 days if QDOS was left running
without ever doing a QL-reset. -MJS
Altered CLK routine to use a value passed from Amiga-QDOS for the
date/time if no hardware clock is found - a work-around fix for the
A4000 which seems to have the battery-backed-up clock at a different
hardware address. -MJS
Fixed bug in 'NO_TAS_CoPro_bas' that produced bad code for TAS $.l
instruction. Fortunately TAS on absolute address is a rarely used
instruction. -MJS
The FLP driver now checks the sector header to see if the track read
was the track that was requested. If it finds that it is reading the
wrong track, it attempts to step the head and re-read the track. It
tries this FOUR times before giving up with a BAD/CHANGED MEDIUM error.
Previously it was assumed that if the drive was asked to step IT WOULD
and that consequently any track read would be the correct one. -MJS
The FLP driver now invalidates the MFM buffer after a read or write.
Previously it was possible that if for some reason the disk READ
routine returned before getting any data from disk, it might not be
noticed - since the buffer would almost certainly contain valid MFM
data. -MJS
1mADDITIONS/ALTERATIONS:0m
Improved the documentation. The documentation was becoming unwieldly
(a new read.me file for every release) so I rationalised it down to 3
main files. "Amiga-QDOS.ver" contains information relating to specific
version releases, "Amiga-QDOS.doc" is a general overview of the
emulator and its peculiarities and "QDOS.doc" is an in-depth
description of the QDOS operating system. -MJS
Added documentation for PDTK, the freeware BASIC toolkit to the QLutils
disk. Moved source to the QLutils disk also. -MJS
Added FACCS, FXTRA, SET_FTYP, SET_FDAT, SET_FACCS, SET_FXTRA, CURSEN,
CURDIS to PDTK freeware BASIC toolkit. -MJS
Added F_TRACE() and P_TRACE to the freeware toolkit PDTK. These
routines allow one to trace BASIC functions and procedures. -MJS
Added D68K disassembly toolkit and documentation to the QLutils disk.
-FNS
Added documentation for the TAS utility programs to the QLutils disk.
- MJS
Altered 'NO_TAS_bas' and 'NO_TAS_CoPro_bas' to make use of the D68K
disassembly toolkit. -MJS
Altered 'NO_TAS_bas', 'NO_TAS_CoPro_bas' and 'RESTORE_TAS_bas' to
enable the cursor during (y/n/a/q) queries - thus making it possible to
task-swap with CTRL-C into another job and back again. -MJS
Altered 'RESTORE_TAS_bas' to handle code produced by both
'NO_TAS_CoPro_bas' and 'NO_TAS_bas'. -MJS
Added 'TURBOFIX_bas' to allow non-F-line fix for TURBO tasks. -MJS
Added screen blanking to MC_STAT hardware register emulation. -MJS
Added support for QDOS sound. The BEEP syntax is supported in full.
Moved SPRITE and COPPER lists so as to provide room for a sound sample
buffer (280 bytes at $18168). -MJS
Added PLAY_MUSIC_bas and PLAY_SCALE_bas to QLutils disk. These programs
demonstrate the possibilities of the BEEP command. -MJS
Added RANDOM_code to QLutils disk, courtesy of SNG.
Speeded up 'QLTRA_bas' by using the INPUT$ command from RANDOM_code.
Renamed program as 'SER_TRANSFER_bas'. -MJS
Added the BASIC keywords PROG_USE, DATA_USE, DEST_USE, SPL_USE, PROGD$,
DATAD$ and DESTD$ to the FLP device driver. This is to accomodate for
programs like XCHANGE that make use of default directories. The
standard BASIC file commands (LOAD, SAVE, LBYTES etc.) do not as yet
make use of default directories (unless TK2 is loaded!). -MJS
Added PD XCHANGE to QLutils support disk. Removed a number of programs
that were less useful. -MJS
Added a routine to identify processor type. The results of the test
(executed at start-up) is stored in the second word of the system
variable SV_IDENT (i.e. at $28002). Execute a PEEK_W(163842) to find
out what QDOS thinks you have. The routine sets the following bits:
bit 0 - at least 68010 bit 4 - at least 68881
bit 1 - at least 68020 bit 5 - 68882 present
bit 2 - at least 68030 bit 6 - 68040/060 FPU
bit 3 - at least 68040 bit 7 - at least 68060
The routine also stores the following processor identity byte in
SysVars + 161, which follows recent QDOS conventions.
$00 (68000/68010), $20 (68020), $30 (68030), $40 (68040)
$60 (68060) -MJS ...68040/68060 changes -SNG
Added emulation of the move sr,dn instruction in user mode for 680X0
processors. This addition should help A1200/A4000 users who were having
trouble running the QPTR pointer environment or TURBO (However there
was a bug in some beta versions of this emulation) -MJS
Moved F-LINE emulation in with the general exception handlin routines
('DBUGCODE_asm' & 'DBUGTBLS_asm'). -MJS
The system now clears the instruction and data caches before executing
the F-LINE or MOVE sr,?? emulation routines (self modifying code!).
-MJS
Added a TRACE routine to the system ROM. If the D68K toolkit is loaded,
a disassembly of the next instruction is given along with register
contents. -MJS
If BASICs' #0 is found to be closed - CTRL-ALT-7, exception handling
(address error, illegal instruction etc.) and the TRACE routines now
re-open #0 to a standard CON window. -MJS
MAIN_cde now links any unseen memory into the common heap as 'free'
memory. Dead areas (memory ranges that do not contain RAM) are linked
in as 'allocated' memory. It is no longer necessary to search for CHIP
RAM unknown to QDOS (as in the INSTALL routine of the 'QL World'
Amiga-QDOS article) since ALL RAM is available for use. The BOOT
program on the 'QLutils' disk is altered to accomodate these changes.
-MJS
In this version AmigaQDOS ROMs (VDU, KBD etc) are ALWAYS loaded between
RAMTOP and the end of physical memory. This means that SV_RAMT does not
point to one past the last physical byte (as on a real QL), but to one
past the last usable byte. -MJS
Altered the way MAIN_cde (and other ROMs) links itself into the RESET,
NMI, TRAP0, TRAP1 vectors etc... Now uses a linked list. -MJS
Added 'MEMORY_MAP_bas' to the QLutils disk. This program prints the
current set-up of the various QDOS memory allocations (i.e common heap,
transient program area etc.) -MJS
Added 'RESET_TOP' keyword (MAIN_cde) to allow users to re-boot with a
new RAMTOP, and 'RESET_SV' that allows users to move the system
variables and re-boot. See Amiga-QDOS.doc for details. -MJS
The QDOS ROM (SYS_cde) is altered to allow the use of the second screen
and to take heed of repositioned system variables. MODE is altered to
act more like the Minerva ROM (see Amiga-QDOS.doc). -MJS
KBD_cde is altered slightly to allow CTRL-C to switch screens if a task
makes use of the alternate screen. -MJS
1mOMISSIONS:0m
Removed UNIMPLEMENTED TRAP error routine from exception handler (the
use of trap #5 to trap #15 without first defining user trap routines).
The GST assembler - re-jigged by QUANTA - now contains two spurious
TRAP #5 instructions. -MJS
--------------------------------------------------------------------------
1m4mVers. 3.21 - 21 APR 930m
1mBUG FIXES:0m
Altered MAIN_cde so as to prevent external interrupt routines being
interrupted part-way-through. -MJS
Fixed bug whereby the SER device made use of H/W handshaking
irrespective of whether the connection was via SER1I or SER1H.
Handshaking is now implemented correctly. -MJS
Closing a serial port connected via SER1Z now correctly sends a CTRL-Z
character before doing the actual close. -MJS
Fixed bug that evolved in version 1.03 of the SER device driver. The
TBE interrupt (transmit buffer empty) was ignored, (the wrong bit was
tested) and data was only sent during the polled interrupt routine
meant for 'tidying up' the output buffer. This produced an through-put
rate of only 400-500 BAUD! -MJS
The pending disk operation tidy-up routine is now a polled task as in
original CST sources. Previously the polled task caused floppy routines
to crash, so a scheduler task was used instead. -MJS
The 'sethead' routine called during the 'flush' routine was the wrong
one. The routine used did not carry out a slave block update on files
of a particular length, and caused such files to lose their date. -MJS
Fixed bug in the AmigaDOS QL-handler, that did not update the used
sectors count when copying to a QL disk. This sometimes resulted in a
disk appearing to have more sectors free than was physically possible.
-FNS
Previous versions of the AmigaDOS QL-handler did not respond correctly
to the ACTION_INFO packets. This resulted in the QL device not
appearing for the Info command, and not appearing on the workbench,
when a non-QL disk was in the drive. -FNS
1mADDITIONS/ALTERATIONS:0m
The parallel device is now buffered and interrupt driven - so within
the constraints of printer speed, output via the parallel port is much
faster. -MJS
Added 'RNCL' (RAW, CR/LF, CR or LF) end of line protocol and 'F'
(FORMFEED) end of file protocol (CLOSE) to the PAR device driver. -MJS
Altered the QDOS diskcopy command to recognise and report an error
when the destination disk is write protected, and when either source
or destination is not in the drive. -MJS
Wrote a disk archiver program called PPvolume that utilises the
powerPacker library and can crunch ANY disk format (PC AMIGA QL) that
has a corresponding device/handler. -MJS
Changed the preferred distribution method from three disks to two
AMIGADOS disks. 'QLboot' contains the emulator and documentation,
'QLstuffed' contains the original AMIGADOS 'QLsource' disk and QDOS
'QLutils' disk as two stuffed archives. The archive program used is
PPvolume. -MJS
Optimised the AmigaDOS QL-handler slightly, resulting in considerably
faster disk writes. -FNS
--------------------------------------------------------------------------
1m4mVers. 3.20 - 28 FEB 930m
1mBUG FIXES:0m
Fixed bugs in the JS QDOS code at addresses $3EC, $60E, $6F0 and $3230
that contain ADDA.W instructions, where ADDA.L should be used. This
caused problems on large memory systems. -MJS
Fixed a bug in the FLOPPY code that caused RENAME, SETHEAD and the
save/overwrite feature of TKII to function incorrectly. The original
CST sources used a polled task to tidy up pending disk operations after
disk access. For some reason this was removed from the emulator sources
and meant that after some disk operations, slave blocks and disk
contents no longer tallied. Subsequent disk writes could cause data
corruption. -MJS
TAS emulation is now extended to two instructions a TST and a BSET, as
the original TAS emulation did not set the N flag and caused
difficulties in some programs. -MJS
1mADDITIONS/ALTERATIONS:0m
Changed most of the icons to be more WB2-like in appearance. -MJS
Added some new start-up icons reflecting even more machine
configurations. Renamed some of the older ones to be more user
friendly. -MJS
Extended the number of tooltypes available to L_QDOS to 16. -MJS
I put the source back together in the same order as the JS original and
implemented Amiga-specific code as separate extension ROMS. There are
now separate ROMs for the keyboard, for the display, for the system
time, etc...The result is that emulator is now a JS equivalent with a
few minor quirks. -MJS
Rejigged the JS Floating point output routine (based on some pokes by
S N Goodwin) to allow accurate editing and printing of 8 digit numbers
without going into E notation. -MJS
Initialised the QDOS system time in the external ROM 'CLK_cde', making
it possible to keep the time intact during a QL RESET
(CTRL-ALT-SHIFT-TAB) -MJS
Added access to the second screen via CTRL-TAB, or by poking the
relevant hardware register (see below). -MJS
Added emulation of the hardware register MC_STAT ($18063). You can
switch screens by toggling bit 7. You can switch screen modes by
toggling bit 3 (a change of screen colours signals that mode 8 is in
operation). -MJS
This version of the emulator can display, and return the screen
coordinates of a simple mouse pointer (SPRITE) via the BASIC commands:
PTR_ON, PTR_OFF, PTR_X% and PTR_Y%. -MJS
Added SCR_PRIORITY command allowing you to set the speed at which the
screen will be refreshed. -MJS
Added BLIT_OFF and BLIT_ON commands. -MJS
Added QL cold-reset function (CTRL-SHIFT-ALT-TAB). -MJS
Made Keys F6-F10 produce the same codes as SHIFT F1-F5 -MJS
Added KEYUK and KEYDT commands to allow you to switch between a UK or
German keymap. -MJS
The serial and parallel devices are now implemented as separate ROMs.
-MJS
Every drive attached to the Amiga now has its own ASCII buffer. This
means that copying between drives is considerably faster than with
previous releases. -MJS
CRC checking has been re-implemented. Previously the floppy routines
had to disable CRC checking to allow the reading of disks, written to
by early versions of the emulator. -MJS
Head stepping is quicker, now being handled by the TIMER. -MJS
The floppy driver now word aligns sector data automatically during a
read by enabling the sync word ($4489) recognition signal. This means
that bit-shifting software no longer has to align raw MFM data. -MJS
Added MOUNT command for drives that do not respond with a correct
drive ID. -MJS
Added FLP_USE command. -MJS
Wrote and included the programs 'NO_TAS_bas' and 'NO_TAS_task' which
are a rewrite of the program TAS_REPLACER_bas of previous releases.
These replace TAS instructions by a Line-F instruction with a
co-processor ID of 7 (bits 9-11 set). This is unused at present, so the
code should be compatible with 68020, 68030 or 68040 machines that
include co-processors. -MJS
Wrote 'RESTORE_TAS_bas' which puts-back TAS instructions where
'NO_TAS_bas' removed them. -MJS
Wrote and included 'NO_TAS_CoPro_bas' and 'NO_TAS_CoPro_task'. These
are a rewrite of the program 'NO_TAS_30_bas' that appeared in earlier
releases. -MJS
Wrote and included 'QLIBFIX_bas' that modifies QLIB'ed programs to run
on the emulator. -MJS
Wrote and included 'POKE_DIGITS_bas' that modifies the emulator to run
with 5,6,7 or 8 digit floating point precision. -SNG
Wrote and included the QL-disk handler and removed the utilities QLtoAM
and QLdir that are now redundant. It is now possible to insert a QL
disk into the Amiga and have AmigaDOS treat it like any other disk.
-FNS
Wrote and included 'PDTK_rext' a public domain toolkit that includes
many commands found in TKII. Please distribute. -MJS
1mOMISSIONS:0m
The effort to make the source practically byte for byte compatible with a
standard JS ROM, made it necessary to drop some of the features of
previous emulator releases.
Dropped the OVERFLOW DISABLE feature of earlier sources.
Dropped search path on IO.OPEN. Earlier sources had a modified IO.OPEN
(OLD) routine that would search devices RAM1_ RAM2_ FLP1_ FLP2_ in
order if it did not recognise a given filename. This is no longer
implemented. Toolkits such as TKII are more effective.
--------------------------------------------------------------------------
1m4mVers. 3.10B - 25 JUN 900m
1mBUG FIXES:0m
Fixed bug in Messydisk device driver (nothing to do with QDOS, but used
by commands that access QL floppies on the Amiga). Although the QL
format only uses 9 sectors, my QL Trumpcard invariably creates a 10th,
incomplete sector. Messydisk had problems reading data from such disks.
-MJS
1mADDITIONS/ALTERATIONS:0m
Added access to QL floppies from AmigaDOS via 3 new commands: QLdir to
display a QL directory, QLtoAM to copy files from a QL disk to an Amiga
disk and QLdiskcopy to make duplicates of QL floppies. -MJS & FNS
Have written and included a program called 'StripCode' which literally
strips the code segment out of an Amiga assembled file so that you can
run it in the QDOS environment. -FNS
Moved source files over to the AmigaDOS environment, and altered it to
assemble with the A68K public domain assembler. Used stripcode to make
it run-able in the QDOS environment. -MJS
--------------------------------------------------------------------------
1m4mVers. 3.10 - 27 MAY 900m
1mBUG FIXES:0m
Fixed bug in Slave Block initialisation. Every block of 512 bytes above
the start of the system variables is a potential slave block and has an
entry of eight bytes in a table which starts at SV.BTBAS and finishes
at SV.BTTOP. Great care is taken to make sure that the length of this
table is divisible by eight. The system variable SV.BTPNT points to the
most recent slave block entry and is initially set to point half way
through the table. No checks were made to make sure that SV.BTPNT was
itself divisible by eight. SV.BTPNT is now initialised correctly - half
way between the first usable entry, and the last usable entry. -MJS
Fixed problem with common heap initialisation. In previous releases it
was very difficult to choose a value for ramtop, (besides the defaults)
that did not cause the machine to crash. The start of the common heap
has to fall on a 512 byte boundary which for certain values of ramtop,
was not always the case. SV.RAMT can now be set to any value that is
divisible by 512. -MJS
Fixed a bug in the floppy code which prevented access to a floppy
disk, should it be in the drive when you invoke QDOS. Any attempt to
access such a disk would show 'not found' or a corrupt directory unless
you physically removed and then re-inserted the disk in the drive.
Signalling a disk change in the initialisation routine of FLOPPY2_asm
cured the problem. -MJS
Fixed CRC bug that prevented a real QL from accessing disks that had
been written by the Amiga-QDOS floppy routines. -MJS
Fixed the IO.FLINE bug (caused crash on BASIC LOAD) in the Janus device
driver. -RK
Altered the Load_QDOS routine so as to avoid loading QDOS at absolute
addresses. This should be of great use to all of you, who had trouble
with the second floppy drive. -RK
Fixed some minor inconsistencies - the PAL bit is set, the Modulo is
set correct. -RK
1mADDITIONS/ALTERATIONS:0m
Added English keyboard support. -RC
Added new Manager Trap: TRAP #1 with D0 set to $27 and D1 containing
the address of a new Keyboard table. Allows use of foreign Language
keyboard tables. -RK
Added DSKCNG command to accommodate for drives that do not handle disk
change signals correctly, and cause problems for the disk routines. -RK
Extended the diskchange command (DSKCNG) to handle more than one drive
correctly. -MJS
Moved the marking of unusable blocks between system variables and lomem
to the slave block initialisation routine. This was formerly
accomplished by allocating the memory in the initialisation routine for
BASIC. As a result the MM_ALCHP "no clear" feature of previous releases
is now redundant. -MJS
Added first version of the AmigaDOS L_QDOS command. This command is
similar to the old Load_QDOS command, except that it does not require
IconX since it takes its parameters from an icons' TOOLTYPES field.
-MJS
Added a startup option for people with extended memory at $C00000. -MJS
Added some nice icons that make this update is more "Amigaized", and so
perhaps, more easy to understand. -JR
Altered the QDOS code to be 68010/20/30/40 proof. I have tested it
briefly, and it seemed to work. -RK
Added a new feature to the TRAP #0 (enter supervisor mode). It now
saves the old Status Register as a word in the new defined System
Variable SV.SR = $28024. -RK
Added SuperBasic program NO_TAS_30_bas which unlike the previous TAS
emulation utilities, doesn't generate line $F instructions. TAS
replaced programs show (at least) a very strange behaviour on 68030
machines with a coprocessor. This is because the line $F instructions
are used for coprocessor implementation. NO_TAS_30 replaces the TAS
instruction with a branch to equivalent code. This utility cannot be
used on code greater than 32K. -RK
--------------------------------------------------------------------------
1m4mVers. 3.03 - 21 MAY 900m
1mBUG FIXES:0m
Fixed bug that caused the keyboard emulation to fail on certain
keyboards. -RK
Fixed the Ctrl-C , Ctrl-spc , Ctrl-F5 'bug'. -RK
Fixed obscure memory management bug. -RK
1mADDITIONS/ALTERATIONS:0m
Added device driver for QDOS floppies. -RK
Added DISKCOPY command. -RK
--------------------------------------------------------------------------
1m4mVers. 3.01 - ?? ??? ??0m
1mADDITIONS/ALTERATIONS:0m
Added JANus device driver to give access to the IBM hard-disk on the
Bridgeboard. -RK
--------------------------------------------------------------------------
1m4mVers. 2.00 - 22 JUN 890m
1mBUG FIXES:0m
Fixed the ERR_DF bug. -RK
Fixed bug in translate routines. The TRA table should now work in both
directions (I have not tested the routine). -RK
Fixed bug that caused EPROM initialisation to hang up during the Boot
process. -RK
1mADDITIONS/ALTERATIONS:0m
Added NMI (<ctrl.> <Alt> <7>) warm reset. -RK
Added ability to BREAK out of EXEC_W programs. -RK
Added SYS_RESET command. -RK
Extended EPROM recognition. EPROMs now tested at $10000, and from
$40000 on in steps of 256 bytes. -RK
Added search list (RAM1_, RAM2_, FLP1_, FLP2_, MDV1_, MDV2_) to OPEN on
old files, and the CLR_SEALST command that disables this feature. -RK
Added the commands OV_OFF and OV_ON to switch the Overflow error
checking on Floating-point arithmetics on and off. -RK
Reserved a scratch area of 1K in the respr area, just below RAMTOP. -RK
--------------------------------------------------------------------------
1m4mKEY TO PROGRAMMERS0m
Thanks to:
RK Rainer Kowallik for the emulator.
Wolfgang Schroeder and Joern Ryba for discussion,
Boris Jakubith and Mathias Leidig for the CRC generator,
Andreas Ihlenfeld for his Keyrow MT.IPCOM,
MJS Mark J Swift for all of his Bug fixes (and recent modifications)
FNS Francis N Swift for the QL0: device driver and various utilities.
SNG Simon N Goodwin for POKE_DIGITS_bas, PALETTE_bas, for the QL World
and AmigaFormat articles about the emulator and for the many hours
of beta-testing.
RC Rod Crookes for the English keymap.
JR Joern Ryba for some nice icons.
--------------------------------------------------------------------------
1m4mCOPYRIGHT STATEMENT:0m
Since I have spent much time developing this emulator, I do not think that
it is immoral to claim it as my own program. Nevertheless QDOS and related
names are protected by those who still have the rights (is it Sinclair
again, or Amstrad, or T.Tebby or who or what ?). However this should not
stop you from spreading this disk, as long as you are sure that no
commercial use is made from all that stuff. I am sure that these programs
are only of interest to those people who own or have owned a QL or THOR,
and so have already paid for the software. Those who are working with
these programs and don't posses a QL, are invited to buy one second hand.
Rainer Kowallik
--------------------------------------------------------------------------
1m4mWHAT HAS TO BE DONE NEXT0m
These are the most important things to do, but unfortunately I don't have
enough time to do this all by myself. I am writing my doctor thesis in
Physics (May 90), and this will cost most of my time. So I am looking for
people who are interested in this project and are able and willing to do
some work for it. I think, it is best you contact me to get information
about a specific part of the project. So you can avoid to invent the wheel
a second time.
You can reach me by post mail:
Rainer Kowallik, Eisackstr. 14, 1000 Berlin(W) 62 (Germany)
By Phone:
(Germany) 030 855 866 5
By EAN mail:
Kowallik@vax@hmi@dbp.de
or in the new form:
S=KOWALLIK;OU=VAX;P=HMI;A=DBP;C=DE
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subject | Programmer
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
An adaption of the Toolkit |
network server which uses |
the CD bit of the serial |
port (CIA-B, PRA #5). The |
transmission speed should |
be changeble |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
A device driver for the |
Harddisk DH0, using |
subdirectories and |
fileformat of Amigados |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
New SCR_ and CON_ drivers |
which can use all features |
of the Amiga (32 colours, |
extra halfbright Interlace, |
overscan) |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Modify the emulator to |
allow QDOS to run as an |
AmigaDOS task, thus |
allowing QDOS access to all |
AmigaDOS devices and |
peripherals. |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ALL PROGRAMS (EXCEPT THE LAST) SHOULD BE IN THE FORMAT OF A
STANDARD QL-ROM.NO OTHER INTERFACE THAN A ROM TOOLKIT SHOULD
BE USED!
--------------------------------------------------------------------------
1m4mMAKING CHANGES TO THE EMULATOR0m
PLEASE DO CHANGE THE SOURCES, AND MARK ALL CHANGES WITH A SPECIAL COMMENT
(e.g. a unique combination of special characters). WRITE DOWN (on white
paper) WHICH ROUTINES (Label names) YOU HAVE MODIFIED, AND SEND BOTH (DISK
AND PAPER) AS FAST AS POSSIBLE TO ME. I will put all changes together to
make a new Version of QDOS.
Thank you,
Rainer Kowallik, May 1990
Eisackstr. 14
1000 Berlin 62
(030) 855 866 5
Kowallik@vax@hmi@dbp.de
--------------------------------------------------------------------------
1m4mADDENDUM - M J Swift0m
1mCONTINUING DEVELOPMENT0m
I am under the impression that due to recent commitments, Rainer has very
little time to make any further improvements to the emulator. Therefore,
in Rainers absence, I have taken on the responsibility for the emulator's
continuing development.
Rainer states that he based his emulator on a JS ROM disassembly. He also
re-ordered the source to be more logical, and re-wrote areas that were
hardware specific.
This however, led to a mingling of old and new code that was very
difficult to debug (for anyone but the original author). With this in mind
I put the source back together in the same order as the JS original, and
did a binary comparison with a genuine Sinclair JS ROM. This allowed me to
pin-point NEW sections of code, which I implemented instead as separate
Amiga-specific extension ROMS. For example there are now separate ROMs for
the keyboard, display, system time, etc...
In a sense the current emulator is a reverse-engineered copy of Rainers'
original which leaves the main bulk of system source code unchanged from a
JS disassembly.
If you have any comments or bug-fixes you can contact me at the addresses
given below. Any mail sent to Rainer will most likely be forwarded on to
me.
Mail me direct at the ...and contact me
following address: most weekends at:
Rear Flat 325 Charlestown Road
175 Church Street Blackley
Blackpool Manchester
FY1 3NX M9 7BS
e-mail: Tel. 0161-682 7587
msw@blackpool.ac.uk
If a bug is a one-off occurrence - it MAY be a glitch. If the bug recurs,
please contact me describing IN DETAIL the condition of re-ocurrence. Be
as specific as possible - and be patient.
MARK J SWIFT
--------------------------------------------------------------------------